﻿using System;
using Autodesk.Revit.DB;
using YJKCodeBase.StringUtility;

namespace YJKCoordinate
{
	public static class StaticRescource
	{
		public static string Str_CreateOffest
		{
			get
			{
				return StaticRescource.str_CreateOffest;
			}
		}

		public static string Str_CreateReversed
		{
			get
			{
				return StaticRescource.str_CreateReversed;
			}
		}

		internal static string Str_Acrive
		{
			get
			{
				return StaticRescource.str_Active;
			}
		}

		internal static string[] ParamArrtibuteNames
		{
			get
			{
				return StaticRescource.paramAttributeNames;
			}
		}

		internal static string ParamXmlName
		{
			get
			{
				return StaticRescource.paramXmlName;
			}
		}

		internal static string ParamXmlPath
		{
			get
			{
				return StaticRescource.paramXmlPath;
			}
			set
			{
				StaticRescource.paramXmlPath = value;
			}
		}

		internal static double[] ArchValues
		{
			get
			{
				return StaticRescource.archValues;
			}
		}

		public static string StrLength
		{
			get
			{
				return StaticRescource.strLength;
			}
		}

		public static string Strheight
		{
			get
			{
				return StaticRescource.strheight;
			}
		}

		internal static string StrThickness
		{
			get
			{
				return StaticRescource.strThickness;
			}
		}

		internal static string StrFlateWidth
		{
			get
			{
				return StaticRescource.strFlateWidth;
			}
		}

		internal static string StrDepth
		{
			get
			{
				return StaticRescource.strDepth;
			}
		}

		public static string StrRfa
		{
			get
			{
				return StaticRescource.strRfa;
			}
		}

		public static string StrWidth
		{
			get
			{
				return StaticRescource.strWidth;
			}
		}

		public static string StartHeight
		{
			get
			{
				return StaticRescource.strHeight;
			}
		}

		public static string EndHeight
		{
			get
			{
				return StaticRescource.strHeight1;
			}
		}

		public static string StartDistanceFloor
		{
			get
			{
				return StaticRescource.startDistanceFloor;
			}
		}

		public static string EndDistanceFloor
		{
			get
			{
				return StaticRescource.endDistanceFloor;
			}
		}

		public static void SetStrPathOutPut(string input)
		{
			StaticRescource.strPathOutPut = input;
		}

		public static void SetPipePathOutPut(string input)
		{
			StaticRescource.strPipePathOutPut = input;
		}

		public static string StrPathOutPut
		{
			get
			{
				return StaticRescource.strPathOutPut + StaticRescource.strTempNameOfOutPut;
			}
		}

		public static string StrPipePathOutPut
		{
			get
			{
				return StaticRescource.strPipePathOutPut;
			}
		}

		public static string StrPathOut
		{
			get
			{
				return StaticRescource.strPathOutPut;
			}
		}

		public static string StrPipePathOut
		{
			get
			{
				return StaticRescource.strPipePathOutPut;
			}
		}

		public static string StrTempNameOfOutPut
		{
			get
			{
				return StaticRescource.strTempNameOfOutPut;
			}
		}

		internal static void SetStrPathFamilyTemplate(string input)
		{
			StaticRescource.strPathFamilyTemplate = input;
		}

		public static void SetStrUseFamilyPath(string input)
		{
			StaticRescource.strUseFamilyPath = input;
		}

		internal static string StrUseFamilyPath
		{
			get
			{
				return StaticRescource.strUseFamilyPath;
			}
		}

		public static void SetStrUsePipeFamilyPath(string input)
		{
			StaticRescource.strUsePipeFamilyPath = input;
		}

		public static string StrUsePipeFamilyPath
		{
			get
			{
				return StaticRescource.strUsePipeFamilyPath;
			}
		}

		public static void SetStrUseEquipmentFamilyPath(string input)
		{
			StaticRescource.strUseEquipmentFamilyPath = input;
		}

		public static string StrUseEquipmentFamilyPath
		{
			get
			{
				return StaticRescource.strUseEquipmentFamilyPath;
			}
		}

		internal static string[] StrArrayFlateNames
		{
			get
			{
				return StaticRescource.strArrayFlateNames;
			}
		}

		internal static string[] StrArrayUseFamilyNames
		{
			get
			{
				return StaticRescource.strArrayUseFamilyNames;
			}
		}

		public static string[] StrArrayUsePipeFamilyNames
		{
			get
			{
				return StaticRescource.strArrayUsePipeFamilyNames;
			}
		}

		public static string[] StrArrayUseEquipmentFamilyNames
		{
			get
			{
				return StaticRescource.strArrayUseEquipmentFamilyNames;
			}
		}

		internal static int[] ValuesofFlateDistance
		{
			get
			{
				return StaticRescource.valuesOfFlateDistance;
			}
		}

		internal static string[] StrDitchMajor
		{
			get
			{
				return StaticRescource.strDitchMajor;
			}
		}

		public static string StrMessage_InputNear
		{
			get
			{
				return StaticRescource.strMessage_InputNear;
			}
		}

		internal static string Str_ErrorNoneFamilyFile
		{
			get
			{
				return StaticRescource.str_ErrorNoneFamilFile;
			}
		}

		public static string StrMessage_NowCreatingFamily
		{
			get
			{
				return StaticRescource.strMessage_NowCreatingFamily;
			}
		}

		public static string StrMessage_NowLoadFamily
		{
			get
			{
				return StaticRescource.strMessage_NowLoadingFamily;
			}
		}

		public static string StrMessage_WrongParameter
		{
			get
			{
				return StaticRescource.strMessage_WrongParameter;
			}
		}

		public static string StrMessage_WrongInput
		{
			get
			{
				return StaticRescource.strMessage_WrongInput;
			}
		}

		internal static string GetAGuid()
		{
			return Guid.NewGuid().ToString();
		}

		public static string GetADateTime()
		{
			return StringUtilityMethod.GetNowDateTimeString();
		}

		public static string StrError_cornerLineIntersection
		{
			get
			{
				return StaticRescource.strError_cornerLineIntersection;
			}
		}

		public static string StrDontWantIf
		{
			get
			{
				return StaticRescource.strDontWantIf;
			}
		}

		public static string StrError_WrongParameter
		{
			get
			{
				return StaticRescource.strError_WrongParameter;
			}
		}

		internal static string StrDistanceNotSame
		{
			get
			{
				return StaticRescource.strDistanceNotSame;
			}
		}

		public static string StrPathFamilyTemplate
		{
			get
			{
				return StaticRescource.strPathFamilyTemplate;
			}
		}

		public static string StrCornerOutSide
		{
			get
			{
				return StaticRescource.strCornerOutSide;
			}
		}

		internal static ElementId GetTextStyleElementId(Document m_doc)
		{
			if (null != StaticRescource.textStyleElementId)
			{
				return StaticRescource.textStyleElementId;
			}
			StaticRescource.textStyleElementId = Utiltiy.GetWantedElementId(m_doc, StaticRescource.strTextStyleName);
			return StaticRescource.textStyleElementId;
		}

		internal static Line BaseZAix
		{
			get
			{
				return StaticRescource.zBaseAix;
			}
		}

		internal static XYZ GetXBaseDriection()
		{
			return StaticRescource.xBaseDriection;
		}

		public static XYZ GetXYPlaneNorme(int val)
		{
			if (val == 0)
			{
				return StaticRescource.xyPlaneNormePostive;
			}
			return StaticRescource.xyPlaneNormeNegtive;
		}

		public static string StrError_PointsNear
		{
			get
			{
				return StaticRescource.strError_PointsNear;
			}
		}

		public static string StrNonIntersection
		{
			get
			{
				return StaticRescource.strNonIntersection;
			}
		}

		public static string StrNonContinuePoint
		{
			get
			{
				return StaticRescource.strNonContinuePoint;
			}
		}

		internal static string StrErrorAngle
		{
			get
			{
				return StaticRescource.strErrorAngle;
			}
		}

		public static string StrErrorIntersection
		{
			get
			{
				return StaticRescource.strErrorIntersection;
			}
		}

		public static string StrError_NullValue
		{
			get
			{
				return StaticRescource.strError_NullValue;
			}
		}

		internal static double GetValueOfPiDvideTwo()
		{
			return StaticRescource.piDvideTwo;
		}

		internal static string GetSlopeString(double sloepValue)
		{
			return string.Format("{0:F}%", sloepValue);
		}

		private static string str_CreateOffest = "CreateOffset";

		private static string str_CreateReversed = "CreateReversed";

		private static string str_Active = "主动抛出";

		private static string[] paramAttributeNames = new string[]
		{
			"ID"
		};

		private static string paramXmlName = "DitchValue.xml";

		private static string paramXmlPath = "C:\\Hongye\\YJKArch2016\\Data\\";

		private static double[] archValues = new double[]
		{
			1075.0,
			196.0,
			307.0
		};

		internal static string strDitchDraw = "沟";

		private static string strLength = "长度";

		private static string strheight = "高度";

		private static string strThickness = "壁厚";

		private static string strFlateWidth = "盖板宽度";

		private static string strDepth = "深度";

		private static string strRfa = ".rfa";

		private static string strWidth = "宽度";

		private static string strHeight = "起点族高度";

		private static string strHeight1 = "终点族高度";

		private static string startDistanceFloor = "起点底距地";

		private static string endDistanceFloor = "终点底距地";

		private static string strMessage_NowLoadingFamily = "正在加载族";

		private static string strMessage_NowCreatingFamily = "正在生成族";

		private static string strMessage_InputNear = "输入点过近，请重新选点，将回退";

		private static string strPathOutPut = "F:\\BIMSPACE\\";

		private static string strPipePathOutPut = "C:\\Hongye\\YJKArch2016\\FamilyLib\\Family\\2016\\";

		private static string strTempNameOfOutPut = "tempCornerFamily";

		private static string strPathFamilyTemplate = "C:\\Hongye\\YJKArch2016\\Templates\\2016\\公制常规模型.rft";

		private static string strUseFamilyPath = "C:\\Hongye\\YJKArch2016\\FamilyLib\\Family\\2016\\Ditch\\";

		private static string strUsePipeFamilyPath = "C:\\Hongye\\YJKArch2016\\FamilyLib\\Family\\2016\\PipeOccupied\\";

		private static string strUseEquipmentFamilyPath = "C:\\Hongye\\YJKArch2016\\FamilyLib\\Family\\2016\\EquipmentOccupied\\";

		private static string[] strArrayFlateNames = new string[]
		{
			"圆孔箅子",
			"铸铁箅子",
			"实心混凝土盖板",
			"钢筋混凝土盖板",
			"实心混凝土盖板",
			"实心混凝土盖板"
		};

		private static string[] strArrayUseFamilyNames = new string[]
		{
			"圆孔箅子排水沟",
			"铸铁箅子排水沟",
			"实心混凝土盖板排水沟",
			"钢筋混凝土盖板排水沟",
			"电缆沟",
			"圆孔箅子暖沟",
			"铸铁箅子暖沟",
			"实心混凝土盖板暖沟",
			"钢筋混凝土盖板暖沟"
		};

		private static string[] strArrayUsePipeFamilyNames = new string[]
		{
			"给排水占位族",
			"暖通占位族",
			"电气占位族",
			"机电占位族",
			"其他占位族"
		};

		private static string[] strArrayUseEquipmentFamilyNames = new string[]
		{
			"给排水设备占位族",
			"暖通设备占位族",
			"电气设备占位族",
			"机电设备占位族",
			"其他设备占位族"
		};

		private static int[] valuesOfFlateDistance = new int[]
		{
			35,
			35,
			35,
			35,
			35,
			35,
			35,
			35,
			35
		};

		private static string[] strDitchMajor = new string[]
		{
			"排水",
			"电缆",
			"暖"
		};

		private static XYZ xBaseDriection = new XYZ(1.0, 0.0, 0.0);

		private static Line zBaseAix = Line.CreateBound(new XYZ(0.0, 0.0, -1.0), new XYZ(0.0, 0.0, 1.0));

		private static double piDvideTwo = new XYZ(1.0, 0.0, 0.0).AngleTo(new XYZ(0.0, 1.0, 0.0));

		private static XYZ xyPlaneNormePostive = new XYZ(0.0, 0.0, 1.0);

		private static XYZ xyPlaneNormeNegtive = new XYZ(0.0, 0.0, -1.0);

		private static string strMessage_WrongParameter = "参数有误，请检查参数值应大于0";

		private static string strError_cornerLineIntersection = "转角生成时出现内部交叉线";

		private static string strMessage_WrongInput = "生成错误，请重新选点";

		private static string strError_WrongParameter = "参数错误";

		private static string strError_PointsNear = "输入的两点过近";

		private static string strError_NullValue = "输入的参数都是Null";

		private static string strNonIntersection = "没有产生相交点";

		private static string strNonContinuePoint = "连续三次输入中中间点不同";

		private static string strErrorAngle = "连续三次输入不是直线或直角";

		private static string strErrorIntersection = "相交判断时错误";

		private static string[] strTextStyleName = new string[]
		{
			"仿宋_3.5mm",
			"3.5.*仿宋",
			"仿宋.*3.5"
		};

		private static string strCornerOutSide = "该位置无法生成拐角";

		private static string strDistanceNotSame = "距离不同";

		private static string strDontWantIf = "不期望分支";

		private static string str_ErrorNoneFamilFile = "没有族文件";

		private static ElementId textStyleElementId = null;
	}
}
